package com.ruoyi.project.cyq.item.item.service;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.security.ShiroUtils;
import com.ruoyi.project.cyq.item.archiving.domain.ConvertTime;
import com.ruoyi.project.cyq.item.item.domain.Item;
import com.ruoyi.project.cyq.item.item.domain.ItemVo;
import com.ruoyi.project.cyq.item.item.mapper.ItemMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigInteger;
import java.util.Date;
import java.util.List;

/**
 * @author Strawberry
 * @date 2020-09-17 下午 2:42
 * @desc 快乐将永远依着草莓
 * @desc 项目管理信息查看模块的Service层
 */
@Service
public class ItemServiceIml implements IItemService {

    @Autowired
    private ItemMapper itemMapper;

    /**
     * 查询并展示所有项目信息
     * */
    @Override
    public List<Item> selectItemList(ItemVo item) {
        return itemMapper.selectItemList(item);
    }

    @Override
    public ItemVo selectOneById(BigInteger projectId) {
        return itemMapper.selectOneById(projectId);
    }

    @Override
    public int updateTheItem(Item itemVo, ConvertTime convertTime) {
//        先获取id，查询项目信息，判断项目的创建时间和创建人是否为空
        ItemVo one = itemMapper.selectOneById(itemVo.getProjectId());

        if (one.getCreateBy() == null) {
//           如果创建人为空，赋予创建人
            itemVo.setProjectCreateBy(ShiroUtils.getLoginName());
        }
        if (one.getCreateTime() != null){
//            如果创建时间不为空，赋予时间，在slq部分将空的时间注入
            itemVo.setProjectCreateTime(one.getCreateTime());
        }

        System.out.println("convertTime==> "+ convertTime);
        Date date = null;
//        处理时间
        if (convertTime.getProjectStartTime()!= null && !"".equals(convertTime.getProjectStartTime())) {
//            String startTime = convertTime.getProjectStartTime();
            date = DateUtils.parseDate(convertTime.getProjectStartTime());
            itemVo.setProjectStartTime(date);
        }
        if (convertTime.getProjectEndTime() != null && !"".equals(convertTime.getProjectEndTime())) {
            date = DateUtils.parseDate(convertTime.getProjectEndTime());
            itemVo.setProjectEndTime(date);
        }

        return itemMapper.updateTheItem(itemVo);
    }

    @Override
    public int deleteByIds(BigInteger[] ids) {
        return itemMapper.deleteByIds(ids);
    }

    @Override
    public List<Item> selectNotInReviewItem() {
        return itemMapper.selectNotInReviewItem();
    }
}
